package main

import (
	"log"

	"we-account-api/config"
	"we-account-api/middleware"
	"we-account-api/pkg/database"
	"we-account-api/pkg/logger"
	"we-account-api/pkg/redis"
	"we-account-api/router"

	"github.com/gin-gonic/gin"
)

func main() {
	// 初始化配置
	if err := config.Init(); err != nil {
		log.Fatalf("配置初始化失败: %v", err)
	}

	// 初始化数据库
	if err := database.Init(); err != nil {
		log.Fatalf("数据库初始化失败: %v", err)
	}

	// 初始化 Redis
	if err := redis.Init(); err != nil {
		log.Fatalf("Redis 初始化失败: %v", err)
	}

	// 初始化日志
	logger.Init()

	// 创建 gin 引擎
	r := gin.Default()

	// 注册中间件
	middleware.Register(r)

	// 注册路由
	router.Register(r)

	// 启动服务器
	r.Run(":8080")
}
